CONTRIBUTION

PROGRAMMER

ENGINE

UNREAL ENGINE 5.3

LANGUAGE

BLUEPRINTS

TYPE

COLLEGE PROJECT

Building a Dialogue System

I was responsible for building our game's dialogue system. Early iteration of the dialogue box just held the text that was supposed to be shown and players would have to walk into triggers to activate the dialogue. This was very limited because we wanted dialogue to be shown while the player performs Life Breathing and when players loaded a new scene. We also recieved feedback that player's didn't know who was talking and whoever was had no personality.

I revamped the dialogue system from the ground up. I dedicated a component that would ONLY handle dialogue and moved everything there. I then added a clear pipeline that the dialogue would go through by doing a bunch of checks when the dialogue system is activated. Namely to know where the dialogue is coming from, if the dialogue was timed or waited for a button press, etc. Checking for where the dialogue was coming from allowed me to route the appropriate actions (such as if the dialogue is meant to be shown during a certain phase of breathing). I also added the ability to add dialogue for when the player enters a new room on load if our narrative designer wanted to add context before the puzzle began.

Then with the help of our wonderful artist, we were able to add personality by creating an arted dialogue box with different emotions Zen could display while the dialogue was being said (which I allowed our narrative designer to change for each line). In the end, the dialogue system ended up being in a great state that I was very satisfied with.

Anxiety Effect

I was responsible for implementing the early version of the breathing mechanic which has gone through multiple iterations. The first iteration used a post processing material that darken the scene around the player. Then a sphere would enlarge at the center of the player which would 'dispel' the anxiety after each completion of Life Breathing. It worked for our proof of concept but it was limiting because there was no 'in-between' state. The circle either completely dispelled the anxiety or didn't. So I had to approach this differently.

I then changed the method to changing the saturation of the scene. This allowed us to have the more gradual change in the scene. We also added a new post processing material that gave objects in the scene a small chromatic aberration effect that was subtle to try and enforce the anxiety effect, which was received well. Only problem with this is that this method does not let us cull certain game objects to keep their colour, such as the breathing pedestal.

I revisited the first method because it allowed me to cull game objects and I got the idea to combine the two methods. I used the same material in method one, added a desaturate node in the material graph and played around until I got the effect I wanted and changed that value instead of the Global Saturation value found on the post processing volume. This allowed me to cull game objects from the saturation effect WHILE also keeping the same gradual change!